/* g729a_acelp_co - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package javaforce.codec.g729a;

final class g729a_acelp_co implements g729a_constants
{
    static void g729a_fc_search
	(g729a_encode_internal var_g729a_encode_internal, int i, float f) {
	float[] fs = var_g729a_encode_internal.c;
	float[] fs_0_ = var_g729a_encode_internal.h;
	float[] fs_1_ = var_g729a_encode_internal.x;
	float[] fs_2_ = var_g729a_encode_internal.y;
	float[] fs_3_ = new float[40];
	float[] fs_4_ = new float[40];
	float[] fs_5_ = new float[40];
	float[] fs_6_ = new float[40];
	float[] fs_7_ = new float[40];
	float f_8_ = var_g729a_encode_internal.gp;
	float[] fs_9_ = new float[616];
	float[] fs_10_ = new float[8];
	float f_11_ = 0.0F;
	int i_12_ = 0;
	int i_13_ = 0;
	int i_14_ = 0;
	int i_15_ = 0;
	int i_16_ = 0;
	int i_17_ = 0;
	int i_18_ = 0;
	int[] is
	    = { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4,
		4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7 };
	g729a_sinthesis_filter var_g729a_sinthesis_filter
	    = new g729a_sinthesis_filter();
	int i_19_ = 0;
	int i_20_ = i_19_ + 8;
	int i_21_ = i_20_ + 8;
	int i_22_ = i_21_ + 8;
	int i_23_ = i_22_ + 8;
	int i_24_ = i_23_ + 8;
	int i_25_ = i_24_ + 64;
	int i_26_ = i_25_ + 64;
	int i_27_ = i_26_ + 64;
	int i_28_ = i_27_ + 64;
	int i_29_ = i_28_ + 64;
	int i_30_ = i_29_ + 64;
	int i_31_ = i_30_ + 64;
	int i_32_ = i_31_ + 64;
	if (f < 0.2000122F)
	    f = 0.2000122F;
	if (f > 0.7944946F)
	    f = 0.7944946F;
	for (int i_33_ = 0; i_33_ < 40; i_33_++)
	    fs_6_[i_33_] = fs_0_[i_33_];
	for (int i_34_ = i; i_34_ < 40; i_34_++)
	    fs_6_[i_34_] = fs_6_[i_34_] + f * fs_6_[i_34_ - i];
	for (int i_35_ = 0; i_35_ < 40; i_35_++)
	    fs_3_[40 - i_35_ - 1] = fs_1_[i_35_] - f_8_ * fs_2_[i_35_];
	g729a_common.g729a_IIR(fs_5_, fs_3_, var_g729a_encode_internal.a_gamma,
			       var_g729a_sinthesis_filter);
	for (int i_36_ = 0; i_36_ < 40; i_36_++)
	    fs_4_[i_36_] = fs_5_[40 - i_36_ - 1];
	for (int i_37_ = 0; i_37_ < 40 - i; i_37_++)
	    fs_4_[i_37_] = fs_4_[i_37_] + f * fs_4_[i_37_ + i];
	for (int i_38_ = 0; i_38_ < 40; i_38_++) {
	    fs_7_[i_38_] = (float) (fs_4_[i_38_] < 0.0F ? -1 : 1);
	    fs_4_[i_38_] = Math.abs(fs_4_[i_38_]);
	}
	g729a_cor_h(fs_9_, fs_6_, fs_7_);
	float f_39_ = -1.0F;
	float f_40_ = 1.0F;
	int i_41_ = i_26_;
	int i_42_ = i_29_;
	int i_43_ = i_31_;
	int i_44_ = i_22_;
	for (int i_45_ = 3; i_45_ < 5; i_45_++) {
	    float f_46_ = -1.0F;
	    float f_47_ = 1.0F;
	    int i_48_ = -1;
	    for (int i_49_ = 0; i_49_ < 2; i_49_++) {
		float f_50_ = -1.0F;
		for (int i_51_ = 2; i_51_ < 40; i_51_ += 5) {
		    if (fs_4_[i_51_] > f_50_ && i_48_ != i_51_) {
			f_50_ = fs_4_[i_51_];
			i_12_ = i_51_;
		    }
		}
		i_48_ = i_12_;
		int i_52_ = is[i_12_];
		int i_53_ = i_21_ + i_52_;
		float f_54_ = fs_4_[i_12_];
		float f_55_ = fs_9_[i_53_];
		i_53_ = i_43_ + i_52_ * 8;
		int i_56_ = i_44_;
		for (int i_57_ = i_45_; i_57_ < 40; i_57_ += 5) {
		    float f_58_ = f_54_ + fs_4_[i_57_];
		    float f_59_ = f_58_ * f_58_;
		    float f_60_ = f_55_ + fs_9_[i_53_] + fs_9_[i_56_];
		    i_53_++;
		    i_56_++;
		    if (f_47_ * f_59_ > f_46_ * f_60_) {
			f_46_ = f_59_;
			f_11_ = f_58_;
			f_47_ = f_60_;
			i_13_ = i_12_;
			i_14_ = i_57_;
		    }
		}
	    }
	    i_12_ = i_13_;
	    int i_61_ = i_14_;
	    float f_62_ = f_11_;
	    float f_63_ = f_47_;
	    f_46_ = -1.0F;
	    f_47_ = 1.0F;
	    int i_64_ = i_28_ + is[i_12_];
	    int i_65_ = i_42_ + is[i_61_];
	    int i_66_ = i_20_;
	    int i_67_ = 0;
	    for (int i_68_ = 1; i_68_ < 40; i_68_ += 5) {
		fs_10_[i_67_] = fs_9_[i_64_] + fs_9_[i_65_] + fs_9_[i_66_];
		i_64_ += 8;
		i_65_ += 8;
		i_66_++;
		i_67_++;
	    }
	    i_64_ = i_25_ + is[i_12_];
	    i_65_ = i_41_ + is[i_61_];
	    i_66_ = i_19_;
	    i_67_ = i_24_;
	    for (int i_69_ = 0; i_69_ < 40; i_69_ += 5) {
		float f_70_ = f_62_ + fs_4_[i_69_];
		float f_71_
		    = f_63_ + fs_9_[i_64_] + fs_9_[i_65_] + fs_9_[i_66_];
		i_64_ += 8;
		i_65_ += 8;
		i_66_++;
		int i_72_ = 0;
		for (int i_73_ = 1; i_73_ < 40; i_73_ += 5) {
		    float f_74_ = f_70_ + fs_4_[i_73_];
		    float f_75_ = f_74_ * f_74_;
		    float f_76_ = f_71_ + fs_9_[i_67_] + fs_10_[i_72_];
		    i_67_++;
		    i_72_++;
		    if (f_47_ * f_75_ > f_46_ * f_76_) {
			f_46_ = f_75_;
			f_47_ = f_76_;
			i_13_ = i_69_;
			i_14_ = i_73_;
		    }
		}
	    }
	    if (f_40_ * f_46_ > f_39_ * f_47_) {
		f_39_ = f_46_;
		f_40_ = f_47_;
		i_17_ = i_12_;
		i_18_ = i_61_;
		i_15_ = i_13_;
		i_16_ = i_14_;
	    }
	    f_46_ = -1.0F;
	    f_47_ = 1.0F;
	    i_48_ = -1;
	    for (int i_77_ = 0; i_77_ < 2; i_77_++) {
		float f_78_ = -1.0F;
		for (int i_79_ = i_45_; i_79_ < 40; i_79_ += 5) {
		    if (fs_4_[i_79_] > f_78_ && i_48_ != i_79_) {
			f_78_ = fs_4_[i_79_];
			i_12_ = i_79_;
		    }
		}
		i_48_ = i_12_;
		int i_80_ = is[i_12_];
		i_64_ = i_44_ + i_80_;
		float f_81_ = fs_4_[i_12_];
		float f_82_ = fs_9_[i_64_];
		i_64_ = i_41_ + i_80_;
		i_65_ = i_19_;
		for (i_61_ = 0; i_61_ < 40; i_61_ += 5) {
		    float f_83_ = f_81_ + fs_4_[i_61_];
		    float f_84_ = f_83_ * f_83_;
		    float f_85_ = f_82_ + fs_9_[i_64_] + fs_9_[i_65_];
		    i_64_ += 8;
		    i_65_++;
		    if (f_47_ * f_84_ > f_46_ * f_85_) {
			f_46_ = f_84_;
			f_11_ = f_83_;
			f_47_ = f_85_;
			i_13_ = i_12_;
			i_14_ = i_61_;
		    }
		}
	    }
	    i_12_ = i_13_;
	    i_61_ = i_14_;
	    f_62_ = f_11_;
	    f_63_ = f_47_;
	    f_46_ = -1.0F;
	    f_47_ = 1.0F;
	    i_64_ = i_43_ + is[i_12_];
	    i_65_ = i_25_ + is[i_61_] * 8;
	    i_66_ = i_21_;
	    i_67_ = 0;
	    for (int i_86_ = 2; i_86_ < 40; i_86_ += 5) {
		fs_10_[i_67_] = fs_9_[i_64_] + fs_9_[i_65_] + fs_9_[i_66_];
		i_64_ += 8;
		i_65_++;
		i_66_++;
		i_67_++;
	    }
	    i_64_ = i_42_ + is[i_12_];
	    i_65_ = i_24_ + is[i_61_] * 8;
	    i_66_ = i_20_;
	    i_67_ = i_28_;
	    for (int i_87_ = 1; i_87_ < 40; i_87_ += 5) {
		float f_88_ = f_62_ + fs_4_[i_87_];
		float f_89_
		    = f_63_ + fs_9_[i_64_] + fs_9_[i_65_] + fs_9_[i_66_];
		i_64_ += 8;
		i_65_++;
		i_66_++;
		int i_90_ = 0;
		for (int i_91_ = 2; i_91_ < 40; i_91_ += 5) {
		    float f_92_ = f_88_ + fs_4_[i_91_];
		    float f_93_ = f_92_ * f_92_;
		    float f_94_ = f_89_ + fs_9_[i_67_] + fs_10_[i_90_];
		    i_67_++;
		    i_90_++;
		    if (f_47_ * f_93_ > f_46_ * f_94_) {
			f_46_ = f_93_;
			f_47_ = f_94_;
			i_13_ = i_87_;
			i_14_ = i_91_;
		    }
		}
	    }
	    if (f_40_ * f_46_ > f_39_ * f_47_) {
		f_39_ = f_46_;
		f_40_ = f_47_;
		i_18_ = i_12_;
		i_15_ = i_61_;
		i_16_ = i_13_;
		i_17_ = i_14_;
	    }
	    i_41_ = i_27_;
	    i_42_ = i_30_;
	    i_43_ = i_32_;
	    i_44_ = i_23_;
	}
	int i_95_ = fs_7_[i_15_] < 0.0F ? 0 : 1;
	int i_96_ = fs_7_[i_16_] < 0.0F ? 0 : 1;
	int i_97_ = fs_7_[i_17_] < 0.0F ? 0 : 1;
	int i_98_ = fs_7_[i_18_] < 0.0F ? 0 : 1;
	var_g729a_encode_internal.S
	    = (short) (i_95_ + 2 * i_96_ + 4 * i_97_ + 8 * i_98_);
	int i_99_ = is[i_18_];
	int i_100_ = i_18_ - i_99_ * 5 == 3 ? 0 : 1;
	var_g729a_encode_internal.C
	    = (short) (is[i_15_] + 8 * is[i_16_] + 64 * is[i_17_]
		       + 512 * (2 * i_99_ + i_100_));
	g729a_utils.g729a_set_0(fs, 0, 40);
	fs[i_15_] = fs_7_[i_15_];
	fs[i_16_] = fs_7_[i_16_];
	fs[i_17_] = fs_7_[i_17_];
	fs[i_18_] = fs_7_[i_18_];
	for (i_99_ = i; i_99_ < 40; i_99_++)
	    fs[i_99_] += f * fs[i_99_ - i];
    }
    
    static void g729a_cor_h(float[] fs, float[] fs_101_, float[] fs_102_) {
	int i = 0;
	int i_103_ = i + 8;
	int i_104_ = i_103_ + 8;
	int i_105_ = i_104_ + 8;
	int i_106_ = i_105_ + 8;
	int i_107_ = i_106_ + 8;
	int i_108_ = i_107_ + 64;
	int i_109_ = i_108_ + 64;
	int i_110_ = i_109_ + 64;
	int i_111_ = i_110_ + 64;
	int i_112_ = i_111_ + 64;
	int i_113_ = i_112_ + 64;
	int i_114_ = i_113_ + 64;
	int i_115_ = i_114_ + 64;
	float f = 0.0F;
	int i_116_ = 0;
	for (int i_117_ = 7; i_117_ >= 0; i_117_--) {
	    f += fs_101_[i_116_] * fs_101_[i_116_];
	    fs[i_106_ + i_117_] = 0.5F * f;
	    f += fs_101_[i_116_ + 1] * fs_101_[i_116_ + 1];
	    fs[i_105_ + i_117_] = 0.5F * f;
	    f += fs_101_[i_116_ + 2] * fs_101_[i_116_ + 2];
	    fs[i_104_ + i_117_] = 0.5F * f;
	    f += fs_101_[i_116_ + 3] * fs_101_[i_116_ + 3];
	    fs[i_103_ + i_117_] = 0.5F * f;
	    f += fs_101_[i_116_ + 4] * fs_101_[i_116_ + 4];
	    fs[i + i_117_] = 0.5F * f;
	    i_116_ += 5;
	}
	int i_118_ = 1;
	i_107_ += 63;
	i_108_ += 63;
	i_109_ += 63;
	i_110_ += 63;
	i_111_ += 63;
	i_112_ += 63;
	i_113_ += 63;
	i_114_ += 63;
	i_115_ += 63;
	for (int i_119_ = 0; i_119_ < 8; i_119_++) {
	    f = 0.0F;
	    float f_120_ = 0.0F;
	    float f_121_ = 0.0F;
	    float f_122_ = 0.0F;
	    i_116_ = 0;
	    int i_123_ = 0;
	    int i_124_ = i_119_ * 7 - 1;
	    float f_125_ = fs_101_[i_118_ + i_116_];
	    float f_126_ = fs_101_[i_118_ + i_116_ + 1];
	    float f_127_ = fs_101_[i_118_ + i_116_ + 2];
	    for (int i_128_ = i_119_ + 1; i_128_ < 8; i_128_++) {
		float f_129_ = fs_101_[i_116_];
		float f_130_ = fs_101_[i_116_ + 1];
		float f_131_ = fs_101_[i_116_ + 2];
		float f_132_ = fs_101_[i_116_ + 3];
		float f_133_ = fs_101_[i_116_ + 4];
		float f_134_ = fs_101_[i_118_ + i_116_ + 3];
		float f_135_ = fs_101_[i_118_ + i_116_ + 4];
		float f_136_ = fs_101_[i_118_ + i_116_ + 5];
		float f_137_ = fs_101_[i_118_ + i_116_ + 6];
		float f_138_ = fs_101_[i_118_ + i_116_ + 7];
		f += f_129_ * f_125_;
		f_120_ += f_129_ * f_126_;
		fs[i_115_ + i_123_] = f_120_;
		f_121_ += f_129_ * f_127_;
		fs[i_113_ + i_123_] = f_121_;
		f_122_ += f_129_ * f_134_;
		fs[i_110_ + i_123_] = f_122_;
		f += f_130_ * f_126_;
		fs[i_114_ + i_123_] = f;
		f_120_ += f_130_ * f_127_;
		fs[i_112_ + i_123_] = f_120_;
		f_121_ += f_130_ * f_134_;
		fs[i_109_ + i_123_] = f_121_;
		f_122_ += f_130_ * f_135_;
		f += f_131_ * f_127_;
		fs[i_111_ + i_123_] = f;
		f_120_ += f_131_ * f_134_;
		fs[i_108_ + i_123_] = f_120_;
		f_121_ += f_131_ * f_135_;
		fs[i_115_ + i_123_ + i_124_] = f_121_;
		f_122_ += f_131_ * f_136_;
		fs[i_114_ + i_123_ + i_124_] = f_122_;
		f += f_132_ * f_134_;
		fs[i_107_ + i_123_] = f;
		f_120_ += f_132_ * f_135_;
		fs[i_113_ + i_123_ + i_124_] = f_120_;
		f_121_ += f_132_ * f_136_;
		fs[i_112_ + i_123_ + i_124_] = f_121_;
		f_122_ += f_132_ * f_137_;
		fs[i_111_ + i_123_ + i_124_] = f_122_;
		f += f_133_ * f_135_;
		fs[i_110_ + i_123_ + i_124_] = f;
		f_120_ += f_133_ * f_136_;
		fs[i_109_ + i_123_ + i_124_] = f_120_;
		f_121_ += f_133_ * f_137_;
		fs[i_108_ + i_123_ + i_124_] = f_121_;
		f_122_ += f_133_ * f_138_;
		fs[i_107_ + i_123_ + i_124_] = f_122_;
		f_125_ = f_136_;
		f_126_ = f_137_;
		f_127_ = f_138_;
		i_123_ -= 9;
		i_116_ += 5;
	    }
	    float f_139_ = fs_101_[i_116_];
	    float f_140_ = fs_101_[i_116_ + 1];
	    float f_141_ = fs_101_[i_116_ + 2];
	    float f_142_ = fs_101_[i_116_ + 3];
	    float f_143_ = fs_101_[i_118_ + i_116_ + 3];
	    f += f_139_ * f_125_;
	    f_120_ += f_139_ * f_126_;
	    fs[i_115_ + i_123_] = f_120_;
	    f_121_ += f_139_ * f_127_;
	    fs[i_113_ + i_123_] = f_121_;
	    f_122_ += f_139_ * f_143_;
	    fs[i_110_ + i_123_] = f_122_;
	    f += f_140_ * f_126_;
	    fs[i_114_ + i_123_] = f;
	    f_120_ += f_140_ * f_127_;
	    fs[i_112_ + i_123_] = f_120_;
	    f_121_ += f_140_ * f_143_;
	    fs[i_109_ + i_123_] = f_121_;
	    f += f_141_ * f_127_;
	    fs[i_111_ + i_123_] = f;
	    f_120_ += f_141_ * f_143_;
	    fs[i_108_ + i_123_] = f_120_;
	    f += f_142_ * f_143_;
	    fs[i_107_ + i_123_] = f;
	    i_118_ += 5;
	    i_107_ -= 8;
	    i_108_ -= 8;
	    i_109_ -= 8;
	    i_110_ -= 8;
	    i_111_ -= 8;
	    i_112_ -= 8;
	    i_113_ -= 8;
	    i_114_ -= 8;
	    i_115_ -= 8;
	}
	i_107_ = i_106_ + 8;
	i_108_ = i_107_ + 64;
	i_109_ = i_108_ + 64;
	i_110_ = i_109_ + 64;
	i_111_ = i_110_ + 64;
	i_112_ = i_111_ + 64;
	i_113_ = i_112_ + 64;
	i_114_ = i_113_ + 64;
	i_115_ = i_114_ + 64;
	for (int i_144_ = 0; i_144_ < 40; i_144_ += 5) {
	    float f_145_ = fs_102_[i_144_];
	    float f_146_ = fs_102_[i_144_ + 1];
	    float f_147_ = fs_102_[i_144_ + 2];
	    for (int i_148_ = 0; i_148_ < 40; i_148_ += 5) {
		float f_149_ = fs_102_[i_148_ + 1];
		float f_150_ = fs_102_[i_148_ + 2];
		float f_151_ = fs_102_[i_148_ + 3];
		float f_152_ = fs_102_[i_148_ + 4];
		fs[i_107_] *= f_145_ * f_149_;
		i_107_++;
		fs[i_108_] *= f_145_ * f_150_;
		i_108_++;
		fs[i_109_] *= f_145_ * f_151_;
		i_109_++;
		fs[i_110_] *= f_145_ * f_152_;
		i_110_++;
		fs[i_111_] *= f_146_ * f_150_;
		i_111_++;
		fs[i_112_] *= f_146_ * f_151_;
		i_112_++;
		fs[i_113_] *= f_146_ * f_152_;
		i_113_++;
		fs[i_114_] *= f_147_ * f_151_;
		i_114_++;
		fs[i_115_] *= f_147_ * f_152_;
		i_115_++;
	    }
	}
    }
}